Personally attended service notification based on temporal and spatial proximity

ABSTRACT

A computer system may notify a user about personally attended services satisfying temporal-spatial criteria. The computer system may use a user location and/or information on already scheduled events to determine whether a personally attended service satisfies the temporal-spatial criteria. Travel time may be determined and included when determining whether the personally attended service conflicts with an already scheduled event. The temporal-spatial criteria may also include availability of the personally attended service. A user profile and/or third party information may be used to determine if a user is available and/or would be receptive to a personally attended service. The user profile may be generated from third party information, such as contained in an online social network, and/or learned. The user may be able to reserve the personally attended service through the computer system.

RELATED APPLICATIONS

This application is a continuation of and claims priority to U.S. patentapplication Ser. No. 14/953,770, filed Nov. 30, 2015, and entitled“Personally Attended Service Notification Based on Temporal and SpatialProximity,” which is a continuation of and claims priority to U.S.patent application Ser. No. 14/184,410, filed Feb. 19, 2014, andentitled “Personally Attended Service Notification Based on Temporal andSpatial Proximity,” which has issued as U.S. Pat. No. 9,204,250, on Dec.1, 2015, and which in turn claims priority to U.S. Provisional PatentApplication Ser. No. 61/767,080 filed Feb. 20, 2013, and entitled“Personally Attended Service Notification Based on Temporal and SpatialProximity,” which are hereby incorporated by reference in theirentirety.

TECHNICAL FIELD

This disclosure relates to systems and methods for notifying a user oftemporally and spatially proximate personally attended services.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic diagram of a system for notifying users oftemporally and spatially proximate personally attended services.

FIG. 2 is an exemplary screen display that may be presented to one ofthe users by the corresponding personal computer system.

FIG. 3 is a pictorial representation of a method for determining whethera plurality of possible personally attended services satisfytemporal-spatial criteria.

FIG. 4 is a flow diagram of a method for notifying a user of personallyattended services satisfying temporal-spatial criteria.

FIG. 5 is a flow diagram of a method for determining user availabilityto receive a personally attended service from third party information.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

A city may offer numerous personally attended services, such asentertainment services (e.g., shows, tours, amusement parks, historicalsites, etc.), hospitality services (e.g., restaurants, bars, night life,etc.), transportation services (e.g., taxis, public transportation,etc.), beauty services (e.g., haircuts, spa treatments, etc.) and thelike, that may be attended by a person and/or their designee. The personmay have difficulty identifying personally attended services that areavailable, nearby, and/or compatible with the person's schedule. Theperson may be unaware of the services and/or considerable time and/oreffort may be required to determine availability and/or timing of thepersonally attended services.

A computer system may aid a user in identifying temporally proximateand/or spatially proximate personally attended services usingtemporal-spatial criteria. The temporal-spatial criteria may includetemporal criteria, spatial criteria, and/or a combined temporal andspatial criteria. The computer system may determine a user location thatcan be used to identify spatially proximate personally attendedservices. The user location may be computed from satellite navigationsignals (e.g., Global Positioning System (GPS) signals), cellular towerlocations, wireless network access points, internet protocol (IP)addresses, etc.; received from the user, a navigation system, and/oranother computer system; and/or the like. Computer systems able todetermine a location may include a smart phone, a tablet (e.g., aniPad®, a Kindle®, or the like), a laptop computer, a smart TV, a desktopcomputer, and/or the like. For each personally attended service, thecomputer system may determine and/or receive a service location. Spatialproximity may be determined by identifying personally attended serviceswithin a predetermined distance of the user location. The predetermineddistance may be an absolute distance; the boundary of a city ormunicipality; a predetermined metropolitan area of a city ormunicipality, which may be proprietary or nonproprietary; a combinationof absolute distance, political divisions, and/or predeterminedmetropolitan area; and/or the like. Alternatively, or in addition, thespatial distances may be converted into travel times, and spatialproximity may be analyzed simultaneously with temporal proximity asdiscussed below.

The computer system may determine a best method of transportation and/orallow the user to indicate the desired method of transportation whendetermining travel time. For example, the computer system may recommenda method of transportation but allow the user to select a differentmethod. A travel time may be determined based on the method oftransportation. The computer system may add in buffer time to ensurearrival before the personally attended service and/or to allow for timespent waiting for transportation and/or transferring between modes oftransportation (e.g., waiting for a taxi or a train). The buffer timemay be a fixed amount, a percentage of the total travel time, based onthe modes of transportation used in computing the travel time, userentered, a combination of the aforementioned, and/or the like. If actualtravel time is varying from predicted travel time and/or the predictedtravel time indicates the user will be late (e.g., traffic data and/or amap routing algorithm indicates a predicted time of arrival later thanthe start time of a personally attended service), the computer systemmay attempt to move reservations and/or take actions to mitigate theeffect of the late arrival.

Temporal proximity may be determined by identifying personally attendedservices that do not conflict with an already scheduled event. Thealready scheduled event may be before and/or after the personallyattended service. Travel time to and/or from the personally attendedservice may be included when determining whether a conflict exists.Additional buffer time may be added for some personally attendedservices to ensure any pre-service requirements may be satisfied by theuser (e.g., picking up tickets, filling out waivers, etc.). Theadditional buffer time may be predetermined, and/or the computer systemmay receive an indication of the additional buffer time from a computersystem associated with the personally attended service. The travel time,including any additional buffer time, may be included when comparing theend time of an already scheduled event before the personally attendedservice with the start time of a personally attended service and/or thestart time of an already scheduled event after the personally attendedservice with the end time of the personally attended service.Alternatively, or in addition, determining temporal proximity mayinclude determining if a start time for a personally attended service istoo far in the future and/or if the travel time exceeds a predeterminedthreshold. Travel time may also or instead be analyzed when determiningspatial proximity.

A user may be able to create a profile and set rules and/or preferencesused to determine spatial and/or temporal proximity. For example, theuser may specify an absolute distance, time until start, and/or traveltime that should not be exceeded. The user may set exclusion areasand/or boundaries limiting the locations of personally attended servicesoffered to the user. The user may set buffer times, preferred methods oftransportation (e.g., an always preferred method and/or preferredmethods for different situations and/or distances), and/or rules forcomputing travel time from a given method of transportation (e.g., awalking speed). The spatial and/or temporal proximity rules,preferences, and/or thresholds may be universal and/or default for allpersonally attended services, and/or the user may specify rules,preferences, and/or thresholds based on the category of service, thetype of service, and/or the particular services. For example, the usermay have default rules for hospitality services, an overriding set ofdefault rules for restaurants, and a specific rule for the user'sfavorite restaurant (e.g., start times for hospitality services shouldbe no more than 30 minutes in the future, but restaurants can have waittimes of up to 45 minutes, and the user's favorite restaurant can have await time of up to 1 hour).

The temporal-spatial criteria may also or instead include criteria basedon the user profile that can be used to determine which personallyattended services should be offered to a user. Different users may enjoydifferent activities, such as a first user that enjoys going to thehighest rated restaurants, a second user that likes seeing all thenewest shows and/or movies, and a third user that enjoys exploringnightlife hot spots. The user may specify categories, types, and/orparticular services should or should not be offered to the user. Theuser may be able to set desired ranges for prices and/or ratings forcategories, types, and/or particular services (e.g., a particularservice may be excepted from a price and/or ratings rule otherwiseapplicable). Services may be ranked according to the user profile,user-determined criteria, and/or third party rankings. If the userprofile/criteria, third party rankings, and/or data about the serviceare unavailable, the computer system may provide an unranked list.

In some embodiments, the user profile may be derived from secondaryinformation (e.g., work and home addresses, income, etc.) and/or a thirdparty (e.g., a social network profile and/or user activity within thesocial network, such as preference indications in the social networkand/or interaction with a profile or page associated with a personallyattended service). The user profile may be learned. The user profile maybe created and/or modified based on past user behavior, such aspersonally attended services accepted and/or rejected by the user,ratings of previously attended services (e.g., ratings through thirdparties and/or ratings requested by the computer system when thepersonally attended service ends), and/or the like. The user may be ableto specify a wish list, such as a show/movie the user would like to seeand/or a restaurant the user wants to eat at. The computer system maymonitor start times, waits, availability, special discounts, the user'sschedule, and/or the like to recommend optimal times to attend theservice.

The computer system may determine whether the user is available toattend a personally attended service before identifying and/or offeringone or more personally attended services. In an embodiment and/orconfiguration, the computer system may detect that a previous personallyattended service has ended and/or is about to end and, in response,identify one or more personally attended services the user may attendnext (e.g., identifying a restaurant after a show or tour ends if thetime is within a predetermined and/or user defined range). The computersystem may interrupt personally attended services and/or alert the userto a personally attended service despite no availability based on, forexample, user preferences (e.g., the user must leave to catch the lasttrain and/or a personally attended service very desirable to the userhas become available). In some embodiments, the computer system maydetermine whether the user's calendar and/or schedule has an opening atany time during which the one or more personally attended services maybe attended. The computer system may notify the user immediately upondetermining that a new personally attended service is available and/orthat the user requires a personally attended service. Alternatively, orin addition, a digest may be sent to the user of any new personallyattended services and/or any personally attended services newlydetermined to be required.

Determining user availability may include the computer system receivinginformation, such as from third parties, a server, applications, and/orthe like, that can be used to determine whether a condition exists thatwould be receptive to a condition-related personally attended service.For example, the computer system may obtain and/or receive weatherinformation when determining a method of transportation. In someembodiments, the computer system may determine when a first personallyattended service will end, and, for example, may automatically schedulea condition-related personally attended service with a correspondingstart time, such as requesting that a taxi arrive when dinner or a showends if it is raining. In another example, the computer system mayreceive updates on new shows and/or movies that have recently opened.The computer system may determine whether the new show or movie is ofinterest to the user based on the user profile (e.g., whether the genreis of interest to the user). If the computer system determines the showor movie may be of interest, it may prompt the user to confirm interest,add the show or movie to the user's wish list, and/or attempt toschedule the show or movie. The computer system may track or storeinformation that can be used to determine whether a condition-relatedpersonally attended service should be offered. For example, the computersystem may track the time since the user last attended a favoriterestaurant and/or the time since the user's last haircut, and thecomputer system may prompt the user and/or attempt to schedule the eventif sufficient time has passed for the user to require and/or prefer theservice again.

The computer system may determine if the personally attended serviceshave availability for the user to attend them (e.g., remaining ticketsand/or openings). The user profile may specify the amount ofavailability required. For example, a user may wish to attend eventswith a significant other and may require two tickets to be available,and/or the user may prefer to attend personally attended services thatare not crowded and may require more availability than the number oftickets the user intends to purchase. The temporal-spatial criteria mayinclude criteria based on availability.

The computer system may present identified personally attended servicesto the user that satisfy the temporal-spatial criteria, which mayinclude availability. The computer system may provide a list, one ormore audio indications, and/or one or more visual indications ofpersonally attended services satisfying the temporal-spatial criteria.Various audio and/or visual indications may be used in differentembodiments. The computer system may also provide details about thepersonally attended services to the user and/or directions to thepersonally attended service. As time passes while the user is decidingwhich personally attended service to attend, one or more personallyattended services may no longer satisfy the temporal-spatial criteriaand/or new personally attended services may begin to satisfy thetemporal-spatial criteria. The presented personally attended servicesmay be dynamically updated as time progresses. Visual indications, suchas specific colors and/or flashing, may indicate that a personallyattended service is newly added, about to expire, and/or expired. Thecomputer system may stop presenting a personally attended service to theuser when it is no longer valid (e.g., the personally attended serviceno longer has any availability and/or the user cannot arrive before thestart time).

The user may be able to select an indicated personally attended serviceof interest and make a reservation with the personally attended servicethrough the computer system. A service computer system associated withthe personally attended service may update the inventory in real timebased on the reservation received from the computer system. Accordingly,the service computer system may be able to provide real-time inventorymanagement, and a real-time inventory may be provided to the computersystem to inform the user of availability.

Additionally, discounts on the personally attended service may beindicated to the user. For example, the personally attended service mayhave an abundance of availability that needs to be sold. The servicecomputer system may notify the computer system, which in turn may notifythe user of a discount. Personally attended services may be discountedafter their start time (e.g., tickets to a football game may bediscounted after kickoff). The user profile may specify whether the useris interested in receiving offers for discounted personally attendedservices and may include a maximum price or minimum discount percentagefor any offers and/or whether the user is willing to attend personallyattended services after their start time. The user may be able tospecify different rules and/or criteria for offering discounts based onthe type of service.

Some embodiments may include features helpful to tourists and/orvisitors to a city and/or destination. The computer system may recommendpopular and/or famous personally attended services. The computer systemmay present a plurality of personally attended services, and the usermay rank and/or indicate “must see” personally attended services. Thecomputer system may arrange a schedule. For example, the computer systemmay attempt to maximize a weighting function that weights the personallyattended services based on rank in addition to, or instead of, thetemporal-spatial criteria.

The computer system may include information about local transportation.The computer system may provide specific information and/orrecommendations about transportation, such as where to pick up publictransportation, which stop to use, and/or when public transportationstops running. The computer system may use the user location to alertthe user when their stop is next, so the user can alert the driverand/or prepare to exit without having to worry about missing their stop.The computer system may be aware of walking routes that are popularand/or that pass by famous, historical, and/or popular attractions. Theuser may be able to indicate and/or update the user profile with methodsof transportation available or preferred (e.g., the user does not have acar, the user prefers not to ride the bus, the user does not like towalk over an indicated distance and/or at all, etc.). The user may beable to indicate that the transportation preferences are temporary,permanent, and/or should be used only with a particular location. Theuser may be prompted to use the transportation preferences for theparticular location when it is determined that the user location is nearthe particular location, and/or the transportation preferences may beloaded automatically.

The computer system may include a processor. Embodiments may includevarious steps, which may be embodied in machine-executable instructionsto be executed by the computer system. The computer system comprises oneor more general-purpose or special-purpose computers (or otherelectronic devices). Alternatively, the computer system may comprisehardware components that include specific logic for performing the stepsor comprise a combination of hardware, software, and/or firmware.Without limitation, a computer system may comprise a workstation, laptopcomputer, disconnectable mobile computer, server, mainframe, cluster,so-called “network computer” or “thin client,” tablet, smartphone,personal digital assistant or other hand-held computing device, “smart”consumer electronics device or appliance, or a combination thereof. Aserver may include a physical server, a server cluster, a distributedserver, a virtual server, a cloud server, a computer providing resourcesto one or more clients, a combination of one or more of theaforementioned, and/or the like. Some or all of the functions, steps,and/or operations discussed herein may be performed by one or moreclients and/or one or more servers. Those of skill in the art willrealize possible divisions of operations between the one or more serversand the one or more clients.

Each computer system includes at least a processor and a memory;computer systems may also include various input devices and/or outputdevices. The processor may include one or more general-purpose centralprocessing units (CPUs), graphic processing units (GPUs), or DigitalSignal Processors (DSPs), such as Intel®, AMD®, ARM®, Nvidia®, ATI®,TI®, or other “off-the-shelf” microprocessors. The processor may includea special-purpose processing device, such as an ASIC, PAL, PLA, PLD,Field Programmable Gate Array (FPGA), or other customized orprogrammable device. The memory may include static RAM, dynamic RAM,flash memory, ROM, CD-ROM, disk, tape, magnetic, optical, or othercomputer storage medium. The input device(s) may include a keyboard,mouse, touch screen, light or other pen, tablet, microphone, sensor, orother hardware with accompanying firmware and/or software. The outputdevice(s) may include a monitor or other display, printer, speech ortext synthesizer, switch, signal line, or other hardware withaccompanying firmware and/or software.

The computers may be capable of using a floppy drive, tape drive,optical drive, magneto-optical drive, memory card reader, or other meansto read a storage medium. A suitable storage medium includes a magnetic,optical, or other computer-readable storage device having a specificphysical configuration. Suitable storage devices include floppy disks,hard disks, tape, CD-ROMs, DVDs, PROMs, random access memory, flashmemory, and other computer system storage devices. The physicalconfiguration represents data and instructions which cause the computersystem to operate in a specific and predefined manner as describedherein.

Embodiments may also be provided as a computer program product,including a non-transitory machine-readable storage medium having storedthereon instructions that may be used to program a computer system (orother electronic device) to perform processes described herein. Thenon-transitory machine-readable storage medium may include, but is notlimited to, hard drives, floppy diskettes, optical disks, CD-ROMs,DVD-ROMs, ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, tapes,solid-state memory devices, or other types of media/machine-readablemedia suitable for storing electronic instructions.

Suitable networks for configuration and/or use as described hereininclude one or more local area networks, wide area networks,metropolitan area networks, and/or “Internet” or IP networks, such asthe World Wide Web, a private Internet, a secure Internet, a value-addednetwork, a virtual private network, an extranet, an intranet, or evenstandalone machines which communicate with other machines by physicaltransport of media (a so-called “sneakernet”). In particular, a suitablenetwork may be formed from parts or entireties of two or more othernetworks, including networks using disparate hardware and networkcommunication technologies. One suitable network includes a server andseveral clients; other suitable networks may contain other combinationsof servers, clients, and/or peer-to-peer nodes, and a given computer mayfunction both as a client and as a server. Each network includes atleast two computer systems, such as the server and/or clients.

The network may include communications or networking software, such asthe software available from Novell, Microsoft, Artisoft, and othervendors, and may operate using TCP/IP, SPX, IPX, and other protocolsover twisted pair, coaxial, or optical fiber cables, telephone lines,satellites, microwave relays, modulated AC power lines, physical mediatransfer, and/or other data transmission “wires” known to those of skillin the art. The network may encompass smaller networks and/or beconnectable to other networks through a gateway or similar mechanism.

Suitable software to assist in implementing the invention is readilyprovided by those of skill in the pertinent art(s) using the teachingspresented here and programming languages and tools, such as Java,Pascal, C++, C, PHP, JavaScript, Python, C#, Perl, SQL, Ruby, Shell,Visual Basic, Assembly, Action Script, Objective C, Lisp, Scala, TclHaskell, Scheme, database languages, APIs, SDKs, assembly, firmware,microcode, and/or other languages and tools. Suitable signal formats maybe embodied in analog or digital form, with or without error detectionand/or correction bits, packet headers, network addresses in a specificformat, and/or other supporting data readily provided by those of skillin the pertinent art(s).

Several aspects of the embodiments described will be illustrated assoftware modules or components. As used herein, a software module orcomponent may include any type of computer instruction orcomputer-executable code located within a memory device. A softwaremodule may, for instance, comprise one or more physical or logicalblocks of computer instructions, which may be organized as a routine, aprogram, a script, an object, a component, a data structure, etc., thatperform one or more tasks or implements particular abstract data types.

In certain embodiments, a particular software module may comprisedisparate instructions stored in different locations of a memory device,different memory devices, or different computers, which togetherimplement the described functionality of the module. Indeed, a modulemay comprise a single instruction or many instructions, and may bedistributed over several different code segments, among differentprograms, and across several memory devices. Some embodiments may bepracticed in a distributed computing environment where tasks areperformed by a remote processing device linked through a communicationsnetwork. In a distributed computing environment, software modules may belocated in local and/or remote memory storage devices. In addition, databeing tied or rendered together in a database record may be resident inthe same memory device, or across several memory devices, and may belinked together in fields of a record in a database across a network.

Much of the infrastructure that may be used according to the presentinvention is already available, such as general-purpose computers,computer programming tools and techniques, computer networks andnetworking technologies, and digital storage media.

FIG. 1 is a schematic diagram of a system 100 for notifying users 141,142, 143, 144 of temporally and spatially proximate personally attendedservices. Each user 141, 142, 143, 144 may be operating a personalcomputer system 131, 132, 133, 134. The personal computer systems 131,132, 133, 134 may include a smart phone 131, a smart television 132, atablet computer 133, and a laptop 134. The personal computer system 131,132, 133, 134 may be connected to a network 120, such as the Internet.For example, the smart phone 131 may be connected to a wireless network122 coupled with the network 120.

The personal computer systems 131, 132, 133, 134 may be coupled to adata server 110. The data server 110 may store information about aplurality of personally attended services in a storage device 112. Thestorage device 112 may also, or instead, store a plurality of userprofiles for the users 141, 142, 143, 144. When one of the personalcomputer systems 131, 132, 133, 134 determines that the correspondinguser 141, 142, 143, 144 is available, it may transmit a user location, auser schedule, and/or the temporal-spatial criteria to the data server110. The data server 110 may access the storage device 112 to identifypersonally attended services that satisfy the temporal-spatial criteria.In some embodiments, the temporal-spatial criteria and/or user schedulemay be stored on the storage device 112, and/or the data server 110 maydetermine the user location based on information from the personalcomputer systems 131, 132, 133, 134, such as an IP address.Alternatively, or in addition, the personal computer systems 131, 132,133, 134 may store information about the plurality of personallyattended services, and/or retrieve information about personally attendedservices directly from one or more service computer systems (not shown)associated with the personally attended services. Some embodiments maynot have the data server 110 and/or storage device 112. The personalcomputer systems 131, 132, 133, 134 may be configured to makereservations for the users 141, 142, 143, 144 through the data server110 and/or directly with the service computer systems.

FIG. 2 is an exemplary screen display 200 that may be presented to oneof the users 141, 142, 143, 144 by the corresponding personal computersystem 131, 132, 133, 134. The exemplary screen display 200 may includea map 210, which may include one or more controls 211, 212 to adjust theposition and/or zoom of the map. The map 210 may include an indicationof a user location 230 and/or an indication of location accuracy 232 forthe user location 232. The map 210 may also include indications of aplurality of personally attended services 222, 224, 226, 228 near theuser location 230 and/or satisfying preferences in a user profile and/ortemporal-spatial criteria. The indications of the plurality ofpersonally attended services 222, 224, 226, 228 may allow basicinformation about the personally attended services to be determined,such as the name and/or location.

FIG. 3 is a pictorial representation 300 of a method for determiningwhether each of a plurality of possible personally attended services322, 324, 328 satisfies temporal-spatial criteria. The pictorialrepresentation 300 includes a schedule 310 with a plurality of hourdemarcations 312 and a plurality of half-hour demarcations 314 and acurrent time indication 330, which indicates a time of 2:40 PM. The usermay be attending a current event 320 that is about to end. The user mayalso have an already scheduled event 326 that is scheduled to begin at6:00 PM.

The computer system may determine that the user is available to receiveindications of personally attended services that can be attended beforethe already scheduled event 326. The computer system may initiallydetermine the possible personally attended services 322, 324, 328satisfy spatial criteria. The computer system may determine whether thepossible personally attended services 322, 324, 328 satisfy temporalcriteria. The computer system may add a travel time 321 a, 323 a, 327 ato the possible personally attended services 322, 324, 328 and/or atravel time 321 b, 323 b, 327 b from the possible personally attendedservices 322, 324, 328. The computer system may determine whether thepossible personally attended services 322, 324, 328 including traveltime 321 a,b, 323 a,b, 327 a,b conflict with the current event 320and/or the already scheduled event 326. For example, a tour at theNatural History Museum 328 may not conflict with the current event 320,but the travel time 327 a to the tour at the Natural History Museum 328may be too long. Thus, the tour at the Natural History Museum 328 maynot satisfy the temporal proximity.

The computer system may determine whether the possible personallyattended services 322, 324, 328 have availability. For example, Jane DoeLive in Concert 322 may be sold out for this particular time. Therefore,Jane Doe Live in Concert may not satisfy the temporal-spatial criteria.Because only the City Sight Seeing Tour 324 may satisfy thetemporal-spatial criteria, it may be presented to the user. The user maybe offered the option to reserve a spot on the City Sight Seeing Tour324 and/or to receive directions to and/or transportation informationfor the City Sight Seeing Tour 324.

FIG. 4 is a flow diagram of a method 400 for notifying a user ofpersonally attended services satisfying temporal-spatial criteria. Themethod 400 may begin by determining 402 if a current service will endsoon. A computer system may be in an idle state where it continuouslyand/or at regular intervals checks to see if the user is available toreceive personally attended services. In the illustrated embodiment, theuser may be deemed to be available if the current service will endwithin a predetermined time period. If it is determined that the currentservice will not end soon, the computer system may repeat step 402.Otherwise, the computer system may proceed to step 404.

If the user is available to receive a personally attended service, thecomputer system may find 404 local personally attended services within apredetermined distance of a user location. The computer system maydetermine the user location and submit the user location and thepredetermined distance to a server comprising a database of personallyattended services. The server may return a data structure, such as alist, of the local services within a predetermined distance.Alternatively, the server may determine the user location and/or maystore the predetermined distance, and/or the computer system maycomprise a database of personally attended services. The computer systemand/or server may use a service location for each personally attendedservice to determine if the personally attended service is within apredetermined distance. In some embodiments, the local personallyattended services may also be selected to be less than a predeterminedtime in the future. The computer system and/or the server may filter 406out personally attended services that do not have availability (e.g.,personally attended services that are sold out and/or have no additionalcapacity). The computer system and/or the server may retrieveavailability from a third party, such as one or more service computersystems associated with personally attended services, and/or thecomputer system and/or the server may track availability. The personallyattended services without availability may be removed and/or deletedfrom the list of local personally attended services to be presented tothe user.

The computer system may determine 408 the distance and/or travel timefrom the user location to each local personally attended service on thelist and may determine 410 the distance and/or travel time from eachlocal personally attended service to an already scheduled service. Thecomputer system may calculate 412 for each local personally attendedservice whether the user has time to attend the personally attendedservice. The computer system may calculate for each personally attendedservice whether the user can travel to the personally attended servicebefore its start time. The computer system may also or instead calculatewhether the user can travel to the already scheduled service before itsstart time once the personally attended service ends. The computersystem may filter 414 out services for which the user does not have time(e.g., personally attended services at which the user will not be ableto arrive before the start time and/or personally attended services thatwill prevent the user from arriving at the already scheduled service bythe start time). The computer system may remove and/or delete servicesfor which the user does not have time from the list of local personallyattended services to be presented to the user.

The computer system may present 416 personally attended servicessatisfying temporal-spatial criteria to the user. The computer systemmay present local personally attended services on the list afterpersonally attended services without availability and/or for which theuser does not have time have been removed from the list. Various formatsmay be used to present the personally attended services to the userincluding on a map, on a calendar, as a list, and/or the like. The usermay be able select one or more personally attended services to find outmore information and/or to reserve the personally attended service. Thecomputer system may receive 418 a user selection indicating that apersonally attended service should be reserved. In response, thecomputer system may reserve 420 the service by submitting a request tothe server and/or a third party, and/or the computer system may providedirections to the personally attended service to the user. In someembodiment, the computer system may receive an acknowledgement and/orconfirmation, which may be displayed and/or indicated to the user. Thedirections provided by the computer system may include a map and/orinstructions on the method of transportation to use.

FIG. 5 is a flow diagram of a method 500 for determining useravailability to receive a condition-related personally attended servicebased on third party information. A computer system may receive 502status information from a server and/or a third party, and/or thecomputer system may receive the status information from a program orapplication, such as a calendar application. The computer system mayhave requested the status information (e.g., by making periodicrequests) and/or may receive the status information without firstsubmitting a request (e.g., the status information may be pushed to thecomputer system). The status information may be compared 504 with userpreferences. The user preferences may indicate one or more situationswhen a service should be offered to the user. For example, the user mayhave indicated that the user is interested in certain services when adiscount is available, that the user is interested in having a taxirequested during inclement weather, and/or the like.

From the status information and user preferences, the computer systemmay determine 506 if a condition exists whereby one or morecondition-related personally attended service should be offered to theuser. If a condition-related personally attended service should not beoffered to the user, the method 500 may end 508. Otherwise, the method500 may continue to step 510. At step 510, the computer system maydetermine 510 whether one of the condition-related personally attendedservices is an immediate service. An immediate service may be apersonally attended service that is likely to be used by the userimmediately or not at all and/or that is unlikely to conflict with otherpersonally attended services. For example, transport services, such as ataxi service, may be immediate services. If the condition-relatedpersonally attended service is an immediate service, the computer systemmay offer 514 the service to the user. Otherwise, the method 500 maycontinue to step 512.

For non-immediate services, the computer system may determine 512whether the user currently has time for any of the condition-relatedpersonally attended services. If the user does have time, the computersystem may offer 514 the condition-related personally attended servicesfor which the user does have time to the user. The user may be able toreserve an offered personally attended service, get directions to anoffered personally attended service, schedule an offered personallyattended service for a later time, decline an offered personallyattended service, and/or the like. If there are any condition-relatedpersonally attended services for which the user does not currently havetime, the computer system may offer 516 to schedule thosecondition-related personally attended services for a later time. Thecondition-related personally attended services may be scheduledinternally, a reservation may be made, the condition-related personallyattended services may be declined, and/or the like.

It will be understood by those having skill in the art that many changesmay be made to the details of the above-described embodiments withoutdeparting from the underlying principles of the disclosure. The scope ofthe present disclosure should, therefore, be determined only by thefollowing claims.

1. A computer implemented method, comprising: identifying anavailability status of a user to receive a personally attended service;determining a location of the user; identifying an arrival buffer timefor the user to travel to each of location at which one of the at leastone personally attended service is available; determining atemporal-spatial criterion associated with each of the at least onepersonally attended service based at least in part on the arrival buffertime; identifying at least one personally attended service with atemporal-spatial criterion that satisfies a selection criterion of theuser; and presenting, to the user, the identified at least onepersonally attended service that satisfies the selection criterion ofthe user.